#ifndef PLAYER_H
#define PLAYER_H
#include <iostream>
#include <vector>
#include "Card.H"
#include "EventActor.H"

class Table;
class Player:public EventActor
{
    private:
        int mPlayerId;
        Table *mTable;
        std::string mName;
        Player *mNextPlayer; //This one gets chance just after me.
        std::vector<Card*> mCards;

	void  GiveFloors( Event *e );
	void  ForceBuild(Event * e );
	void  AddMore( Event *e );   
	void  YourTurn (Event *e );  
	void  TakeCards( Event *e );
	void  PickMore ( Event *e ); 

    public: 
	Player( int id, char* name ): mPlayerId(id), mName(name), mNextPlayer(NULL ) { }
	const char *GetName() { return mName.c_str(); }
	int GetPlayerId() { return mPlayerId; }
	void Play();
        void SetMyTable( Table *table ) { mTable = table; };
        void SetNextPlayer( Player *player ) { mNextPlayer = player; }
        Player *GetNextPlayer() {  return mNextPlayer; }
        void TakeCards ( int num, Card **card );
    private :
        void ProcessEventQueue() ;

};
#endif //PLAYER_H

